﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SharpSphinx.Util.Configuration;
using SharpSphinx.Decoder.Search;

namespace SharpSphinx.Decoder
{
    public abstract class AbstractDecoder : IConfigurable 
    {

        public const  String Prop_Search_Manager = "SearchManager";
        protected ISearchManager searchManager;

        public const String Prop_Result_Listeners = "ResultListeners";

        protected const List<ResultListener> resultListeners = new List<ResultListener>();

        public const string Auto_Allocate = "AutoAllocate";



        public const String Fire_Non_Final_Results = "FireNonFinalRessults";
        private bool fireNonFianlResults;

        private string name;
       // protected Logger logger;

        public AbstractDecoder()
        {

        }


        public abstract Result Decode(String ReferenceText); 

       // public override newProperties()

        private void init(String name,/*Logger logger,*/ ISearchManager searchManger,bool fireNonFinalResults,bool AutoAllocate, List<ResultListener> listeners)
        {

        }



    }
}
